Various approaches continue to be used for integrating a number of Hypertext Markup Language (HTML)-based graphical user interfaces (“UIs”) into one coherent user interface, which may be referred to as “a single pane of glass.” For example, in some cases, various development teams may build a number of UIs knowing that they would be later integrated into one overall application, where ideally all developers are contributing code, styles and components to the same code base using the same tools and frameworks.
This approach, however, does not scale well and it becomes harder to manage when more teams and products join the application suite. Very often, the individual application components need to be available in a standalone version as well and, therefore, they need to be able to be developed independently of the whole suite. Also, different teams use different UI libraries or different versions of the same library which makes integrating the individual UI components into one coherent UI even more difficult.
Another approach is to compose the UIs at deploy or run time into a single location, usually called a Hypertext Markup Language (HTML) shell. Using such an approach allows the various UIs to be developed and maintained individually but also integrated easily into one UI. Also, this approach allows separate development teams developing the various UIs to use any UI library they find necessary without being concerned about incompatibilities.
An example of the implementation of the latter approach is a standardized feature provided by HTML version 4.0, which is referred to as IFrame. IFrame provides a convenient way to embed various external content, including third party UIs or web pages, in a “sandboxed” IFrame area within an HTML shell. The sandboxed IFrame area is enabled by a sandboxing feature that provides security to the browser by limiting certain privileges the content contained within the IFrame area may have and restricting certain actions may perform. As an example, sandboxing may prevent JavaScript to execute in the content contained within the IFrame area (i.e., hereinafter the “IFramed content”) and/or the IFramed content may be prevented from loading plugins, creating new windows, or rendering any visual context outside of its designated IFrame area.